perm filename PIXTS1.SAI[VIS,HPM]1 blob sn#142204 filedate 1975-01-28 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "PIXTS1"
C00007 ENDMK
C⊗;
BEGIN "PIXTS1"
REQUIRE "VIXNIC.SAI[VIS,HPM]" SOURCE_FILE;
REQUIRE "WIXNIC.SAI[VIS,HPM]" SOURCE_FILE;
INTEGER SIZE,W,CAMERA,CHN,WID,HIG,IAV;
BOOLEAN SYNA;
REQUIRE "⊂⊃<>" DELIMITERS;
DEFINE BOX(X1,Y1,X2,Y2)=
⊂	BEGIN
	LINE(X1,Y1,X2,Y1);
	LINE(X2,Y1,X2,Y2);
	LINE(X2,Y2,X1,Y2);
	LINE(X1,Y2,X1,Y1);
	END			⊃;
WID←HIG←256;
OUTSTR("CAMERA NUMBER:"); CAMERA←CVD(INCHWL) MOD 4;
OUTSTR("WINDOW SIZE:"); W←CVD(INCHWL);
OUTSTR("USE SYNTHESIZER?"); SYNA←(INCHWL LAND '137)="Y";
SIZE←PIXDIM(WID,HIG,4);
OUTSTR("SIZE= "&CVS(SIZE)&'15&'12);
   BEGIN
   INTEGER ARRAY P1,P2,PIC,PIC1[0:SIZE-1],INTER[-2:(WID-1)%W-1,0:(HIG-1)%W-1];
   INTEGER I,J;
   OUTSTR("READING ");
   MAKPIX(WID,HIG,4,PIC[0]);
   MAKPIX(WID,HIG,4,PIC1[0]);
   CAMPIX(CAMERA,2,2,1,8,PIC[0]);
   CAMPIX(CAMERA,2,2,1,8,PIC1[0]);
   OUTSTR("DONE"&'15&'12);
   PASSHI(PIC[0],W,P1[0]);
   PASSHI(PIC1[0],W,P2[0]);
   DDINIT; SCREEN(-1,-1,1,1);
   DRKEN; RECTAN(-1,-1,1,1); LITEN;
   WID←PIC[LNBY]; HIG←PIC[PCLN];
   OUTSTR("WID "&CVS(WID)&" HIG "&CVS(HIG)&'15&'12);
   IF ¬SYNA THEN OUTSTR(CVOS(CHN←GDDCHN(-1))&" IS THE DD CHANNEL"&'15&'12);
   DRKEN; RECTAN(-1,-1,1,1); LITEN;
   IF SYNA THEN FOR J←1,2,3 DO DPYUP(SYNMAP(5));
   FOR I←(IF SYNA THEN PIC[BYBI]-1 ELSE 0) STEP -1 UNTIL 0 DO
      BEGIN
      DRKEN; RECTAN(-1,-1,1,1);
      IF SYNA THEN VIDEO(-1,0,0,-1,PIC[0],2↑I) ELSE HAFTON(-1,0,0,-1,PIC[0]);
      IF SYNA THEN VIDEO(-1,0,0,1,P1[0],2↑I) ELSE HAFTON(-1,0,0,1,P1[0]);
      IF SYNA THEN VIDEO(0,0,1,-1,PIC1[0],2↑I) ELSE HAFTON(0,0,1,-1,PIC1[0]);
      IF SYNA THEN VIDEO(0,0,1,1,P2[0],2↑I) ELSE HAFTON(0,0,1,1,P2[0]);
      FOR J←1,2,3 DO DPYUP(IF SYNA THEN SYNMAP(I-PIC[BYBI]+5) ELSE CHN);
      IF ¬SYNA THEN SHOW(CHN);
      END;
      IF SYNA THEN BEGIN DRKEN; RECTAN(-1,-1,1,1); LITEN; END;
      IAV←INTRST(PIC[0],W,INTER[0,0]);
      FOR I←0 STEP 1 UNTIL (HIG-1)%W-1 DO
      FOR J←0 STEP 1 UNTIL (WID-1)%W-1 DO
         IF INTER[I,J]≥IAV ∧ (INTER[I,J] LAND 1)≠1 THEN
            BEGIN
            INTEGER IL,JL,IH,JH;
            BOX(<(J+1)*W/WID-1>,<-(I+1)*W/HIG>,<J*W/WID-1>,<-I*W/HIG>);
            IL←((I-2)*W) MAX 0; JL←((J-2)*W) MAX 0;
            IH←((I+2)*W) MIN (HIG-1); JH←((J+2)*W) MIN (WID-1);
            BSTCOR(PIC[0],J*W,I*W,(J+1)*W,(I+1)*W,PIC1[0],JL,IL,JH,IH);
            BOX(<JL/WID>,<-IL/WID>,<JH/WID>,<-IH/WID>);
            DPYUP(IF SYNA THEN SYNMAP(5) ELSE CHN);
            END;
   END;

END;